//package com.ruoyi.common.utils.wxpay.demo;
//
//import com.ruoyi.common.utils.wxpay.AmountUtils;
//import com.ruoyi.common.utils.wxpay.MyConfig;
//import com.ruoyi.common.utils.wxpay.WXPay;
//import com.ruoyi.common.utils.wxpay.WXPayUtil;
//import org.apache.commons.lang.StringUtils;
//import org.springframework.data.domain.Pageable;
//import org.springframework.stereotype.Service;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import java.math.BigDecimal;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.UUID;
//
//
///**
// * 充值记录表
// * @author GSX
// *
// */
//@Service("rechargeServiceImpl")
//public class RechargeServiceImpl implements com.ruoyi.common.utils.pay.demo.RechargeService {
//
//    /**
//     * /web/Recharge/wxPay
//     *
//     * @param totalFee 金额
//     * @param stuId    学生id
//     * @return
//     * @throws Exception R
//     * @throws
//     * @Description: 微信充值
//     * @author GSX
//     * @date 2022年4月28日上午9:37:56
//     */
//    @Override
//    public Map<String, Object> wxPay(HttpServletRequest request,Long stuId,String totalFee) {
//        Map<String, Object> result = new HashMap<String, Object>();
//        //元转分
//        String total = AmountUtils.changeY2F(totalFee);
//        MyConfig config = null;
//          WXPay wxpay = null;
//  		try {
//  			config = new MyConfig();
//  			wxpay = new WXPay(config);
//  		} catch (Exception e1) {
//  			e1.printStackTrace();
//  		}
//        Student student = studentDao.find(stuId);
//        Parent parent1 = parentDao.find(student.getParentId());
//
//        // 生成流水号
//  		String payGlideNo = System.currentTimeMillis() + "";
//          Map<String, String> data = new HashMap<String, String>();
//          //商品描述
//          data.put("body", "微信小程序充值");
//          //商户订单号
//          data.put("out_trade_no", payGlideNo);
//          //设备号
//          data.put("device_info", "12152");
//          //标价币种
//          data.put("fee_type", "CNY");
//          //标价金额	单位为分
//          data.put("total_fee", total);
//          //终端IP
//          data.put("spbill_create_ip", request.getLocalAddr());
//          //回调地址
//          data.put("notify_url", "http://47.114.118.212:80/pscs/web/Recharge/payCallback.jhtml");
//          //支付方式
//          data.put("trade_type", "JSAPI");
//          //商品ID
//          data.put("product_id", "12");
//          //用户标识
//          data.put("openid", parent1.getOpenId());
//          try {
//              Map<String, String> resp = wxpay.unifiedOrder(data);
//              if("OK".equals(resp.get("return_msg"))){
//                  HashMap<String, String> map = new HashMap<>();
//                  map.put("appId", "wxe66b24b0cc716cc7");
//                  map.put("timeStamp", WXPayUtil.getCurrentTimestamp() + "");
//                  map.put("nonceStr", WXPayUtil.generateNonceStr());
//                  map.put("signType", "MD5");
//                  map.put("package", "prepay_id=" + resp.get("prepay_id"));
//                  String paySign = WXPayUtil.generateSignature(map, config.getKey());
//                  map.put("paySign", paySign);
//                  map.put("resultCode", "SUCCESS");
//                  map.put("out_trade_no", payGlideNo);
//
//                  result.put("code", 0);
//                  result.put("msg", "success");
//
//                  result.put("resp", map);
//                  Recharge recharge = new Recharge();
//                  recharge.setOrderNumber(UUID.randomUUID().toString().replace("-",""));
//                  recharge.setStuId(stuId);
//                  recharge.setStuName(student.getStuName());
//                  recharge.setParentId(parent1.getId());
//                  recharge.setParentName(parent1.getParentName());
//                  recharge.setParentPhoneNumber(parent1.getPhoneNumber());
//                  recharge.setBeforeBalance(student.getBalance());
//                  recharge.setRechargeAmount(new BigDecimal(totalFee));
//                  recharge.setPayType("0");
//                  recharge.setPayOrder(payGlideNo);
//                  recharge.setStatus("NOTPAY");
//                  result.put("Recharge",recharge);
//                  result.put("Student",student);
//                  return result;
//              }else{
//            	  result.put("code", 1001);
//                  result.put("msg", "error");
//                  return result;
//              }
//          } catch (Exception e) {
//              e.printStackTrace();
//          }
//          result.put("code", 1001);
//          result.put("msg", "error");
//          return result;
//    }
//
//    /**
//     * /admin/Recharge/list
//     *
//     * @param pageable    分页对象
//     * @param orderNumber 订单号
//     * @param stuName     学生姓名
//     * @param parentName  家长姓名
//     * @param startTime   开始时间
//     * @param endTime     结束时间
//     * @return Map<Object>
//     * @Description: 获取充值记录表
//     * @author GSX
//     * @date 2022/4/29 10:29
//     */
//    @Override
//    public Map<String, Object> list(Pageable pageable, String orderNumber, String stuName, String parentName, String startTime, String endTime, String status) {
//        Map<String, Object> map = new HashMap<String, Object>();
//
//        if (StringUtils.isNotEmpty(orderNumber)) {
//            pageable.getFilters().add(new Filter("orderNumber", Filter.Operator.like, orderNumber));
//        }
//        if (StringUtils.isNotEmpty(stuName)) {
//            pageable.getFilters().add(new Filter("stuName", Filter.Operator.like, stuName));
//        }
//        if (StringUtils.isNotEmpty(parentName)) {
//            pageable.getFilters().add(new Filter("parentName", Filter.Operator.like, parentName));
//        }
//        if (StringUtils.isNotEmpty(status)) {
//            pageable.getFilters().add(new Filter("status", Filter.Operator.eq, status));
//        }
//        //时间比较
//        if (null != startTime && null != endTime) {
//            Filter fbeginDate = new Filter("createDate", Filter.Operator.datele, startTime);
//            pageable.getFilters().add(fbeginDate);
//            Filter fendDate = new Filter("createDate", Filter.Operator.dategt, endTime);
//            pageable.getFilters().add(fendDate);
//        }
//        Page<Recharge> parentPage = rechargeDao.findPage(pageable);
//        map.put("code", 0);
//        map.put("msg", "SUCCESS_MESSAGE");
//        map.put("data", parentPage.getContent());
//        map.put("total", parentPage.getTotal());
//        return map;
//    }
//
//    /**
//     * @Description: 根据payOrder获取Recharge
//     * @author GSX
//     * @date 2022/4/29 19:38
//     * @param payOrder
//     * @return Recharge
//     */
//    @Override
//    public Recharge selectByPayOrder(String payOrder) {
//        return rechargeDao.selectByPayOrder(payOrder);
//    }
//}
